package com.talent.web.model.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * @ClassName：TlFile
 * @Author: hszhou
 * @Date: 2025/3/3 17:58
 * @Description: 必须描述类做什么事情, 实现什么功能
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TlFile {

    /**
     * 主键ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /**
     * 分片上传的uploadId
     */
    private String uploadId;

    /**
     * 文件唯一标识（md5）
     */

    private String identifier;

    /**
     * 文件名
     */

    private String fileName;

    private String fileExtension;

    /**
     * 桶名
     */
    private String bucketName;

    /**
     * 文件存储路径
     */

    private String objectName;

    /**
     * 文件大小（byte）
     */

    private Long fileSize;

    /**
     * 每个分片大小（byte）
     */

    private Long chunkSize;

    /**
     * 分片数量
     */

    private Integer chunkNum;

    /**
     * 是否上传完成(1：是  0：否)
     */

    private String isFinish;

    private String userId;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;


    public Boolean isFinish() {
        return "1".equals(this.isFinish) ? true : false;
    }


}
